diff options
author | Mark Spruiell <mes@zeroc.com> | 2001-12-12 02:24:24 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2001-12-12 02:24:24 +0000 |
commit | 83c9ea4b35ab8c80bee8cd23670669a1b7f4bc5c (patch) | |
tree | 72c9194c3c75ecf93c7018b49285c562c7421234 /java | |
parent | minor fix (diff) | |
download | ice-83c9ea4b35ab8c80bee8cd23670669a1b7f4bc5c.tar.bz2 ice-83c9ea4b35ab8c80bee8cd23670669a1b7f4bc5c.tar.xz ice-83c9ea4b35ab8c80bee8cd23670669a1b7f4bc5c.zip |
initial check-in
Diffstat (limited to 'java')
-rw-r--r-- | java/test/Ice/exceptions/AllTests.java | 397 | ||||
-rw-r--r-- | java/test/Ice/exceptions/Client.java | 53 | ||||
-rw-r--r-- | java/test/Ice/exceptions/Test.ice | 53 | ||||
-rw-r--r-- | java/test/Ice/facets/AllTests.java | 90 | ||||
-rw-r--r-- | java/test/Ice/facets/Client.java | 53 | ||||
-rw-r--r-- | java/test/Ice/facets/Test.ice | 50 | ||||
-rw-r--r-- | java/test/Ice/inheritance/AllTests.java | 251 | ||||
-rw-r--r-- | java/test/Ice/inheritance/Client.java | 53 | ||||
-rw-r--r-- | java/test/Ice/inheritance/Test.ice | 82 |
9 files changed, 1082 insertions, 0 deletions
diff --git a/java/test/Ice/exceptions/AllTests.java b/java/test/Ice/exceptions/AllTests.java new file mode 100644 index 00000000000..fc7059b6672 --- /dev/null +++ b/java/test/Ice/exceptions/AllTests.java @@ -0,0 +1,397 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +public class AllTests +{ + private static class MyExceptionFactory implements Ice.UserExceptionFactory + { + public void + createAndThrow(String type) + throws Ice.UserException + { + if (type.equals("::A")) + { + throw new A(); + } + else if (type.equals("::B")) + { + throw new B(); + } + else if (type.equals("::C")) + { + throw new C(); + } + else if (type.equals("::D")) + { + throw new D(); + } + assert(false); // Should never be reached + } + + public void + destroy() + { + // Nothing to do + } + } + + private static void + test(boolean b) + { + if (!b) + { + throw new RuntimeException(); + } + } + + public static ThrowerPrx + allTests(Ice.Communicator communicator, boolean collocated) + { + System.out.print("testing stringToProxy... "); + System.out.flush(); + String ref; + + Ice.Properties properties = communicator.getProperties(); + + String protocol = properties.getProperty("Ice.Protocol"); + String secure = ""; + + if (protocol == null) + { + protocol = "tcp"; + } + + if (protocol.equals("ssl")) + { + secure = " -s "; + } + + String endpts = protocol + " -p 12345 -t 2000"; + + ref = "thrower" + secure + ":" + endpts; + + Ice.ObjectPrx base = communicator.stringToProxy(ref); + test(base != null); + System.out.println("ok"); + + System.out.print("testing checked cast... "); + System.out.flush(); + ThrowerPrx thrower = ThrowerPrxHelper.checkedCast(base); + test(thrower != null); + test(thrower.equals(base)); + System.out.println("ok"); + + System.out.print("catching exact types... "); + System.out.flush(); + + try + { + thrower.throwAasA(1); + test(false); + } + catch (A ex) + { + test(ex.a == 1); + } + catch (Exception ex) + { + test(false); + } + + try + { + thrower.throwAorDasAorD(1); + test(false); + } + catch (A ex) + { + test(ex.a == 1); + } + catch (Exception ex) + { + test(false); + } + + try + { + thrower.throwAorDasAorD(-1); + test(false); + } + catch (D ex) + { + test(ex.d == -1); + } + catch (Exception ex) + { + test(false); + } + + try + { + thrower.throwBasB(1, 2); + test(false); + } + catch (B ex) + { + test(ex.a == 1); + test(ex.b == 2); + } + catch (Exception ex) + { + test(false); + } + + try + { + thrower.throwCasC(1, 2, 3); + test(false); + } + catch (C ex) + { + test(ex.a == 1); + test(ex.b == 2); + test(ex.c == 3); + } + catch (Exception ex) + { + test(false); + } + + System.out.println("ok"); + + System.out.print("catching base types... "); + System.out.flush(); + + try + { + thrower.throwBasB(1, 2); + test(false); + } + catch (A ex) + { + test(ex.a == 1); + } + catch (Exception ex) + { + test(false); + } + + try + { + thrower.throwCasC(1, 2, 3); + test(false); + } + catch (B ex) + { + test(ex.a == 1); + test(ex.b == 2); + } + catch (Exception ex) + { + test(false); + } + + System.out.println("ok"); + + if (!collocated) // If the server is collocated, exception factories + { // are not needed. + System.out.print("catching derived types w/o exception " + + "factories... "); + System.out.flush(); + + try + { + thrower.throwBasA(1, 2); + test(false); + } + catch (Ice.NoUserExceptionFactoryException ex) + { + } + catch (Exception ex) + { + test(false); + } + + try + { + thrower.throwCasA(1, 2, 3); + test(false); + } + catch (Ice.NoUserExceptionFactoryException ex) + { + } + catch (Exception ex) + { + test(false); + } + + try + { + thrower.throwCasB(1, 2, 3); + test(false); + } + catch (Ice.NoUserExceptionFactoryException ex) + { + } + catch (Exception ex) + { + test(false); + } + + System.out.println("ok"); + + System.out.print("catching derived types w/ exception " + + "factories... "); + System.out.flush(); + + Ice.UserExceptionFactory factory = new MyExceptionFactory(); + communicator.addUserExceptionFactory(factory, "::A"); + communicator.addUserExceptionFactory(factory, "::B"); + communicator.addUserExceptionFactory(factory, "::C"); + communicator.addUserExceptionFactory(factory, "::D"); + } + else + { + System.out.print("catching derived types... "); + System.out.flush(); + } + + try + { + thrower.throwBasA(1, 2); + test(false); + } + catch (B ex) + { + test(ex.a == 1); + test(ex.b == 2); + } + catch (Exception ex) + { + test(false); + } + + try + { + thrower.throwCasA(1, 2, 3); + test(false); + } + catch (C ex) + { + test(ex.a == 1); + test(ex.b == 2); + test(ex.c == 3); + } + catch (Exception ex) + { + test(false); + } + + try + { + thrower.throwCasB(1, 2, 3); + test(false); + } + catch (C ex) + { + test(ex.a == 1); + test(ex.b == 2); + test(ex.c == 3); + } + catch (Exception ex) + { + test(false); + } + + System.out.println("ok"); + + System.out.print("catching unknown user exception... "); + System.out.flush(); + + try + { + thrower.throwUndeclaredA(1); + test(false); + } + catch (Ice.UnknownUserException ex) + { + } + catch (Exception ex) + { + test(false); + } + + try + { + thrower.throwUndeclaredB(1, 2); + test(false); + } + catch (Ice.UnknownUserException ex) + { + } + catch (Exception ex) + { + test(false); + } + + try + { + thrower.throwUndeclaredC(1, 2, 3); + test(false); + } + catch (Ice.UnknownUserException ex) + { + } + catch (Exception ex) + { + test(false); + } + + System.out.println("ok"); + + System.out.print("catching unknown local exception... "); + System.out.flush(); + + try + { + thrower.throwLocalException(); + test(false); + } + catch (Ice.UnknownLocalException ex) + { + } + catch (Exception ex) + { + test(false); + } + + System.out.println("ok"); + + System.out.print("catching unknown non-Ice exception... "); + System.out.flush(); + + try + { + thrower.throwNonIceException(); + test(false); + } + catch (Ice.UnknownException ex) + { + } + catch (Exception ex) + { + test(false); + } + + System.out.println("ok"); + + return thrower; + } +} diff --git a/java/test/Ice/exceptions/Client.java b/java/test/Ice/exceptions/Client.java new file mode 100644 index 00000000000..b60db562a10 --- /dev/null +++ b/java/test/Ice/exceptions/Client.java @@ -0,0 +1,53 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +public class Client +{ + private static int + run(String[] args, Ice.Communicator communicator) + { + ThrowerPrx thrower = AllTests.allTests(communicator, false); + thrower.shutdown(); + return 0; + } + + public static void + main(String[] args) + { + int status = 0; + Ice.Communicator communicator = null; + + try + { + communicator = Ice.Util.initialize(args); + status = run(args, communicator); + } + catch (Ice.LocalException ex) + { + ex.printStackTrace(); + status = 1; + } + + if (communicator != null) + { + try + { + communicator.destroy(); + } + catch (Ice.LocalException ex) + { + ex.printStackTrace(); + status = 1; + } + } + + System.exit(status); + } +} diff --git a/java/test/Ice/exceptions/Test.ice b/java/test/Ice/exceptions/Test.ice new file mode 100644 index 00000000000..dc42b49e0f9 --- /dev/null +++ b/java/test/Ice/exceptions/Test.ice @@ -0,0 +1,53 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +#ifndef TEST_ICE +#define TEST_ICE + +interface Thrower; + +exception A +{ + int a; +}; + +exception B extends A +{ + int b; +}; + +exception C extends B +{ + int c; +}; + +exception D +{ + int d; +}; + +interface Thrower +{ + void shutdown(); + void throwAasA(int a) throws A; + void throwAorDasAorD(int a) throws A, D; + void throwBasA(int a, int b) throws A; + void throwCasA(int a, int b, int c) throws A; + void throwBasB(int a, int b) throws B; + void throwCasB(int a, int b, int c) throws B; + void throwCasC(int a, int b, int c) throws C; + void throwUndeclaredA(int a) throws B, D; + void throwUndeclaredB(int a, int b); + void throwUndeclaredC(int a, int b, int c) throws D; + void throwLocalException(); + void throwNonIceException(); +}; + +#endif diff --git a/java/test/Ice/facets/AllTests.java b/java/test/Ice/facets/AllTests.java new file mode 100644 index 00000000000..0cc6d0876e5 --- /dev/null +++ b/java/test/Ice/facets/AllTests.java @@ -0,0 +1,90 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +public class AllTests +{ + private static void + test(boolean b) + { + if (!b) + { + throw new RuntimeException(); + } + } + + public static GPrx + allTests(Ice.Communicator communicator) + { + Ice.Properties properties = communicator.getProperties(); + + String protocol = properties.getProperty("Ice.Protocol"); + + if (protocol == null) + { + protocol = "tcp"; + } + + String secure = ""; + + if (protocol.equals("ssl")) + { + secure = " -s "; + } + + System.out.print("testing stringToProxy... "); + System.out.flush(); + String ref = "d" + secure + ":" + protocol + " -p 12345 -t 2000"; + Ice.ObjectPrx db = communicator.stringToProxy(ref); + test(db != null); + System.out.println("ok"); + + System.out.print("testing checked cast... "); + System.out.flush(); + DPrx d = DPrxHelper.checkedCast(db); + test(d != null); + test(d.equals(db)); + System.out.println("ok"); + + System.out.print("testing non-facets A, B, C, and D... "); + System.out.flush(); + test(d.callA().equals("A")); + test(d.callB().equals("B")); + test(d.callC().equals("C")); + test(d.callD().equals("D")); + System.out.println("ok"); + + System.out.print("testing facets A, B, C, and D... "); + System.out.flush(); + DPrx df = DPrxHelper.checkedCast(d, "facetABCD"); + test(df != null); + test(df.callA().equals("A")); + test(df.callB().equals("B")); + test(df.callC().equals("C")); + test(df.callD().equals("D")); + System.out.println("ok"); + + System.out.print("testing facets E and F... "); + System.out.flush(); + FPrx ff = FPrxHelper.checkedCast(d, "facetEF"); + test(ff != null); + test(ff.callE().equals("E")); + test(ff.callF().equals("F")); + System.out.println("ok"); + + System.out.print("testing facet G... "); + System.out.flush(); + GPrx gf = GPrxHelper.checkedCast(d, "facetG"); + test(gf != null); + test(gf.callG().equals("G")); + System.out.println("ok"); + + return gf; + } +} diff --git a/java/test/Ice/facets/Client.java b/java/test/Ice/facets/Client.java new file mode 100644 index 00000000000..e66d55743f4 --- /dev/null +++ b/java/test/Ice/facets/Client.java @@ -0,0 +1,53 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +public class Client +{ + private static int + run(String[] args, Ice.Communicator communicator) + { + GPrx g = AllTests.allTests(communicator); + g.shutdown(); + return 0; + } + + public static void + main(String[] args) + { + int status = 0; + Ice.Communicator communicator = null; + + try + { + communicator = Ice.Util.initialize(args); + status = run(args, communicator); + } + catch (Ice.LocalException ex) + { + ex.printStackTrace(); + status = 1; + } + + if (communicator != null) + { + try + { + communicator.destroy(); + } + catch (Ice.LocalException ex) + { + ex.printStackTrace(); + status = 1; + } + } + + System.exit(status); + } +} diff --git a/java/test/Ice/facets/Test.ice b/java/test/Ice/facets/Test.ice new file mode 100644 index 00000000000..03075f3713c --- /dev/null +++ b/java/test/Ice/facets/Test.ice @@ -0,0 +1,50 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +#ifndef TEST_ICE +#define TEST_ICE + +interface A +{ + string callA(); +}; + +interface B extends A +{ + string callB(); +}; + +interface C extends A +{ + string callC(); +}; + +interface D extends B, C +{ + string callD(); +}; + +interface E +{ + string callE(); +}; + +interface F extends E +{ + string callF(); +}; + +interface G +{ + void shutdown(); + string callG(); +}; + +#endif diff --git a/java/test/Ice/inheritance/AllTests.java b/java/test/Ice/inheritance/AllTests.java new file mode 100644 index 00000000000..78124f2fe77 --- /dev/null +++ b/java/test/Ice/inheritance/AllTests.java @@ -0,0 +1,251 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +public class AllTests +{ + private static void + test(boolean b) + { + if (!b) + { + throw new RuntimeException(); + } + } + + public static InitialPrx + allTests(Ice.Communicator communicator) + { + Ice.Properties properties = communicator.getProperties(); + + String protocol = properties.getProperty("Ice.Protocol"); + String secure = ""; + + if (protocol == null) + { + protocol = "tcp"; + } + + if (protocol.equals("ssl")) + { + secure = " -s "; + } + + String ref = "initial" + secure + ":" + protocol + " -p 12345 -t 2000"; + + System.out.print("testing stringToProxy... "); + System.out.flush(); + Ice.ObjectPrx base = communicator.stringToProxy(ref); + test(base != null); + System.out.println("ok"); + + System.out.print("testing checked cast... "); + System.out.flush(); + InitialPrx initial = InitialPrxHelper.checkedCast(base); + test(initial != null); + test(initial.equals(base)); + System.out.println("ok"); + + System.out.print("getting proxies for class hierarchy... "); + System.out.flush(); + M_A.C_APrx ca = initial.c_a(); + M_B.C_BPrx cb = initial.c_b(); + M_A.C_CPrx cc = initial.c_c(); + M_A.C_DPrx cd = initial.c_d(); + test(ca != cb); + test(ca != cc); + test(ca != cd); + test(cb != cc); + test(cb != cd); + test(cc != cd); + System.out.println("ok"); + + System.out.print("getting proxies for interface hierarchy... "); + System.out.flush(); + M_A.I_APrx ia = initial.i_a(); + M_B.I_B1Prx ib1 = initial.i_b1(); + M_B.I_B2Prx ib2 = initial.i_b2(); + M_A.I_CPrx ic = initial.i_c(); + test(ia != ib1); + test(ia != ib2); + test(ia != ic); + test(ib1 != ic); + test(ib2 != ic); + System.out.println("ok"); + + System.out.print("invoking proxy operations on class hierarchy... "); + System.out.flush(); + M_A.C_APrx cao; + M_B.C_BPrx cbo; + M_A.C_CPrx cco; + + cao = ca.ca(ca); + test(cao.equals(ca)); + cao = ca.ca(cb); + test(cao.equals(cb)); + cao = ca.ca(cc); + test(cao.equals(cc)); + cao = cb.ca(ca); + test(cao.equals(ca)); + cao = cb.ca(cb); + test(cao.equals(cb)); + cao = cb.ca(cc); + test(cao.equals(cc)); + cao = cc.ca(ca); + test(cao.equals(ca)); + cao = cc.ca(cb); + test(cao.equals(cb)); + cao = cc.ca(cc); + test(cao.equals(cc)); + + cao = cb.cb(cb); + test(cao.equals(cb)); + cbo = cb.cb(cb); + test(cbo.equals(cb)); + cao = cb.cb(cc); + test(cao.equals(cc)); + cbo = cb.cb(cc); + test(cbo.equals(cc)); + cao = cc.cb(cb); + test(cao.equals(cb)); + cbo = cc.cb(cb); + test(cbo.equals(cb)); + cao = cc.cb(cc); + test(cao.equals(cc)); + cbo = cc.cb(cc); + test(cbo.equals(cc)); + + cao = cc.cc(cc); + test(cao.equals(cc)); + cbo = cc.cc(cc); + test(cbo.equals(cc)); + cco = cc.cc(cc); + test(cco.equals(cc)); + System.out.println("ok"); + + System.out.print("ditto, but for interface hierarchy... "); + System.out.flush(); + M_A.I_APrx iao; + M_B.I_B1Prx ib1o; + M_B.I_B2Prx ib2o; + M_A.I_CPrx ico; + + iao = ia.ia(ia); + test(iao.equals(ia)); + iao = ia.ia(ib1); + test(iao.equals(ib1)); + iao = ia.ia(ib2); + test(iao.equals(ib2)); + iao = ia.ia(ic); + test(iao.equals(ic)); + iao = ib1.ia(ia); + test(iao.equals(ia)); + iao = ib1.ia(ib1); + test(iao.equals(ib1)); + iao = ib1.ia(ib2); + test(iao.equals(ib2)); + iao = ib1.ia(ic); + test(iao.equals(ic)); + iao = ib2.ia(ia); + test(iao.equals(ia)); + iao = ib2.ia(ib1); + test(iao.equals(ib1)); + iao = ib2.ia(ib2); + test(iao.equals(ib2)); + iao = ib2.ia(ic); + test(iao.equals(ic)); + iao = ic.ia(ia); + test(iao.equals(ia)); + iao = ic.ia(ib1); + test(iao.equals(ib1)); + iao = ic.ia(ib2); + test(iao.equals(ib2)); + iao = ic.ia(ic); + test(iao.equals(ic)); + + iao = ib1.ib1(ib1); + test(iao.equals(ib1)); + ib1o = ib1.ib1(ib1); + test(ib1o.equals(ib1)); + iao = ib1.ib1(ic); + test(iao.equals(ic)); + ib1o = ib1.ib1(ic); + test(ib1o.equals(ic)); + iao = ic.ib1(ib1); + test(iao.equals(ib1)); + ib1o = ic.ib1(ib1); + test(ib1o.equals(ib1)); + iao = ic.ib1(ic); + test(iao.equals(ic)); + ib1o = ic.ib1(ic); + test(ib1o.equals(ic)); + + iao = ib2.ib2(ib2); + test(iao.equals(ib2)); + ib2o = ib2.ib2(ib2); + test(ib2o.equals(ib2)); + iao = ib2.ib2(ic); + test(iao.equals(ic)); + ib2o = ib2.ib2(ic); + test(ib2o.equals(ic)); + iao = ic.ib2(ib2); + test(iao.equals(ib2)); + ib2o = ic.ib2(ib2); + test(ib2o.equals(ib2)); + iao = ic.ib2(ic); + test(iao.equals(ic)); + ib2o = ic.ib2(ic); + test(ib2o.equals(ic)); + + iao = ic.ic(ic); + test(iao.equals(ic)); + ib1o = ic.ic(ic); + test(ib1o.equals(ic)); + ib2o = ic.ic(ic); + test(ib2o.equals(ic)); + ico = ic.ic(ic); + test(ico.equals(ic)); + System.out.println("ok"); + + System.out.print("ditto, but for class implementing interfaces... "); + System.out.flush(); + M_A.C_DPrx cdo; + + cao = cd.ca(cd); + test(cao.equals(cd)); + cbo = cd.cb(cd); + test(cbo.equals(cd)); + cco = cd.cc(cd); + test(cco.equals(cd)); + + iao = cd.ia(cd); + test(iao.equals(cd)); + ib1o = cd.ib1(cd); + test(ib1o.equals(cd)); + ib2o = cd.ib2(cd); + test(ib2o.equals(cd)); + + cao = cd.cd(cd); + test(cao.equals(cd)); + cbo = cd.cd(cd); + test(cbo.equals(cd)); + cco = cd.cd(cd); + test(cco.equals(cd)); + + iao = cd.cd(cd); + test(iao.equals(cd)); + ib1o = cd.cd(cd); + test(ib1o.equals(cd)); + ib2o = cd.cd(cd); + test(ib2o.equals(cd)); + System.out.println("ok"); + + return initial; + } +} diff --git a/java/test/Ice/inheritance/Client.java b/java/test/Ice/inheritance/Client.java new file mode 100644 index 00000000000..87ebf950790 --- /dev/null +++ b/java/test/Ice/inheritance/Client.java @@ -0,0 +1,53 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +public class Client +{ + private static int + run(String[] args, Ice.Communicator communicator) + { + InitialPrx initial = AllTests.allTests(communicator); + initial.shutdown(); + return 0; + } + + public static void + main(String[] args) + { + int status = 0; + Ice.Communicator communicator = null; + + try + { + communicator = Ice.Util.initialize(args); + status = run(args, communicator); + } + catch (Ice.LocalException ex) + { + ex.printStackTrace(); + status = 1; + } + + if (communicator != null) + { + try + { + communicator.destroy(); + } + catch (Ice.LocalException ex) + { + ex.printStackTrace(); + status = 1; + } + } + + System.exit(status); + } +} diff --git a/java/test/Ice/inheritance/Test.ice b/java/test/Ice/inheritance/Test.ice new file mode 100644 index 00000000000..b05492b092e --- /dev/null +++ b/java/test/Ice/inheritance/Test.ice @@ -0,0 +1,82 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +#ifndef TEST_ICE +#define TEST_ICE + +module M_A +{ + +interface I_A +{ + I_A* ia(I_A* p); +}; + +class C_A +{ + C_A* ca(C_A* p); +}; + +}; + +module M_B +{ + +interface I_B1 extends M_A::I_A +{ + I_B1* ib1(I_B1* p); +}; + +interface I_B2 extends M_A::I_A +{ + I_B2* ib2(I_B2* p); +}; + +class C_B extends M_A::C_A +{ + C_B* cb(C_B* p); +}; + +}; + +module M_A +{ + +interface I_C extends M_B::I_B1, M_B::I_B2 +{ + I_C* ic(I_C* p); +}; + +class C_C extends M_B::C_B +{ + C_C* cc(C_C* p); +}; + +class C_D extends C_C implements M_B::I_B1, M_B::I_B2 +{ + C_D* cd(C_D* p); +}; + +}; + +interface Initial +{ + void shutdown(); + M_A::C_A* c_a(); + M_B::C_B* c_b(); + M_A::C_C* c_c(); + M_A::C_D* c_d(); + M_A::I_A* i_a(); + M_B::I_B1* i_b1(); + M_B::I_B2* i_b2(); + M_A::I_C* i_c(); +}; + +#endif |