summaryrefslogtreecommitdiff
path: root/cpp/test/Ice/inheritance/Test.ice
blob: bdb1e2ec96e383a73e0e893bc8907d4032b75fe2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// **********************************************************************
//
// Copyright (c) 2001
// Mutable Realms, 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