summaryrefslogtreecommitdiff
path: root/TAO/tests/Cubit/TAO/DII_Cubit/cubit_i.cpp
blob: d15c4b71df0b557b7c5d303f36fc435f1fd2fdad (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
// @(#)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 ();
}