File: ExceptionTest_Fib_Impl.hh

package info (click to toggle)
babel 0.10.2-1
  • links: PTS
  • area: contrib
  • in suites: sarge
  • size: 43,932 kB
  • ctags: 29,707
  • sloc: java: 74,695; ansic: 73,142; cpp: 40,649; sh: 18,411; f90: 10,062; fortran: 6,727; python: 6,406; makefile: 3,866; xml: 118; perl: 48
file content (160 lines) | stat: -rw-r--r-- 4,555 bytes parent folder | download
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
// 
// File:          ExceptionTest_Fib_Impl.hh
// Symbol:        ExceptionTest.Fib-v1.0
// Symbol Type:   class
// Babel Version: 0.10.2
// Description:   Server-side implementation for ExceptionTest.Fib
// 
// WARNING: Automatically generated; only changes within splicers preserved
// 
// babel-version = 0.10.2
// 

#ifndef included_ExceptionTest_Fib_Impl_hh
#define included_ExceptionTest_Fib_Impl_hh

#ifndef included_sidl_cxx_hh
#include "sidl_cxx.hh"
#endif
#ifndef included_ExceptionTest_Fib_IOR_h
#include "ExceptionTest_Fib_IOR.h"
#endif
// 
// Includes for all method dependencies.
// 
#ifndef included_ExceptionTest_Fib_hh
#include "ExceptionTest_Fib.hh"
#endif
#ifndef included_ExceptionTest_FibException_hh
#include "ExceptionTest_FibException.hh"
#endif
#ifndef included_ExceptionTest_NegativeValueException_hh
#include "ExceptionTest_NegativeValueException.hh"
#endif
#ifndef included_sidl_BaseInterface_hh
#include "sidl_BaseInterface.hh"
#endif
#ifndef included_sidl_ClassInfo_hh
#include "sidl_ClassInfo.hh"
#endif


#line 42 "../../../../babel/regression/exceptions/libCxx/ExceptionTest_Fib_Impl.hh"
// DO-NOT-DELETE splicer.begin(ExceptionTest.Fib._includes)
// Put additional includes or other arbitrary code here...
// DO-NOT-DELETE splicer.end(ExceptionTest.Fib._includes)
#line 46 "ExceptionTest_Fib_Impl.hh"

namespace ExceptionTest { 

  /**
   * Symbol "ExceptionTest.Fib" (version 1.0)
   * 
   * This class holds the method <code>getFib</code> that generates the
   * requested Fibonacci numbers.
   */
  class Fib_impl
#line 55 "../../../../babel/regression/exceptions/libCxx/ExceptionTest_Fib_Impl.hh"
  // DO-NOT-DELETE splicer.begin(ExceptionTest.Fib._inherits)
  // Put additional inheritance here...
  // DO-NOT-DELETE splicer.end(ExceptionTest.Fib._inherits)
#line 61 "ExceptionTest_Fib_Impl.hh"
  {

  private:
    // Pointer back to IOR.
    // Use this to dispatch back through IOR vtable.
    Fib self;

#line 65 "../../../../babel/regression/exceptions/libCxx/ExceptionTest_Fib_Impl.hh"
    // DO-NOT-DELETE splicer.begin(ExceptionTest.Fib._implementation)
    // Put additional implementation details here...
    // DO-NOT-DELETE splicer.end(ExceptionTest.Fib._implementation)
#line 73 "ExceptionTest_Fib_Impl.hh"

  private:
    // private default constructor (required)
    Fib_impl() 
    {} 

  public:
    // sidl constructor (required)
    // Note: alternate Skel constructor doesn't call addref()
    // (fixes bug #275)
    Fib_impl( struct ExceptionTest_Fib__object * s ) : self(s,true) { _ctor(); }

    // user defined construction
    void _ctor();

    // virtual destructor (required)
    virtual ~Fib_impl() { _dtor(); }

    // user defined destruction
    void _dtor();

    // static class initializer
    static void _load();

  public:


    /**
     * <p>
     * Generate the requested Fibonacci number or generate exceptions if
     * the input Fibonacci number is invalid or if any of the maximum depth
     * or maximum value parameters are exceeded.  The last argument of the
     * method should be zero.
     * </p>
     * <p>
     * The algorithm should be similar to the <code>Java</code> code below.
     * </p>
     * <pre>
     * public int getFib(int n, int max_depth, int max_value, int depth)
     *     throws NegativeValueException, FibException {
     * 
     *   if (n < 0) {
     *     throw new NegativeValueException("n negative");
     * 
     *   } else if (depth > max_depth) {
     *     throw new TooDeepException("too deep");
     * 
     *   } else if (n == 0) {
     *     return 1;
     * 
     *   } else if (n == 1) {
     *     return 1;
     * 
     *   } else {
     *     int a = getFib(n-1, max_depth, max_value, depth+1);
     *     int b = getFib(n-2, max_depth, max_value, depth+1);
     *     if (a + b > max_value) {
     *       throw new TooBigException("too big");
     *     }
     *     return a + b;
     *   }
     * } 
     * </pre>
     */
    int32_t
    getFib (
      /* in */ int32_t n,
      /* in */ int32_t max_depth,
      /* in */ int32_t max_value,
      /* in */ int32_t depth
    )
    throw ( 
      ::ExceptionTest::NegativeValueException, 
      ::ExceptionTest::FibException
    );

  };  // end class Fib_impl

} // end namespace ExceptionTest

#line 148 "../../../../babel/regression/exceptions/libCxx/ExceptionTest_Fib_Impl.hh"
// DO-NOT-DELETE splicer.begin(ExceptionTest.Fib._misc)
// Put miscellaneous things here...
// DO-NOT-DELETE splicer.end(ExceptionTest.Fib._misc)
#line 158 "ExceptionTest_Fib_Impl.hh"

#endif