summaryrefslogtreecommitdiff
path: root/TAO/IIOP/test/test1.h
blob: 513bffc82d7b9e92185fca08dc10d743b2d468aa (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// $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 <corba/orb.h>
#include <corba/stub.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