summaryrefslogtreecommitdiff
path: root/tests/OBV/Factory/Factory.idl
blob: f6fd41a6ab70828afe9cfe8687c93fbf936f86f9 (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
// $Id$

//
// This file contains few valuetypes to show and test basic OBV factory
// construct functionality.
//

module OBV_FactoryTest
{

  //
  // Base valuetype without any ops or factories. Result should be
  // concrete BaseConcreteValue_init class ready to use. 
  //
  valuetype BaseValue
  {
    // Nested type to check proper visibility.
    struct BV_Data
    {
      unsigned long value;
    };
    
    public unsigned long some_data;
  };
  
  //
  // Another valuetype w/o ops, etc. Just to check proper inheritance
  // of OBV_ classes and RefCounter's. Value1_init should be 
  // concrete as well.
  //
  valuetype Value1 : BaseValue
  {
    public unsigned long id;
  };

  //
  // Valuetype with few factories.
  //
  valuetype Value2 : BaseValue
  {
    public unsigned long id;
    public BV_Data data;
    
    factory create_default (in unsigned long id);
    factory create (in unsigned long id,
                    in BV_Data data);
  };

  //
  // Interface to pass valuetypes.
  //
  interface Test
  {
    BaseValue get_base_value ();
    Value1 get_value1 ();
    Value2 get_value2 ();    

    // Shutdown the romote ORB
    oneway void shutdown ();

  };

};