summaryrefslogtreecommitdiff
path: root/TAO/CIAO/ciao/CCM_Base.idl
blob: 7e13e52554505ad76e38d4a9de31409ee17bc71c (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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
// $Id$

/**
 * @@ Compile this file with:
 *
 *     tao_idl -I W:/ACE_wrappers/TAO Component_Base.idl
 *     tao_idl -I ../.. \
 *          -Wb,export_macro=CIAO_Export \
 *          -Wb,export_include=CIAO_export.h \
 *          -Wb,pre_include="ace/pre.h" \
 *          -Wb,post_include="ace/post.h" \
 *          CCM_Base.idl
 */

//#define CIAO_HAS_IMPORT_KEYWORD

#ifdef CIAO_HAS_IMPORT_KEYWORD
// import ::CORBA;
#else
#include <orb.idl>
#endif /* CIAO_HAS_IMPORT_KEYWORD */

#if !defined (CCM_BASE_IDL)
#define CCM_BASE_IDL

module Components
{
  /**
   * @@ Commented out temporarily for lack of typePrefix support.
   */
  typeprefix Components "omg.org";

  typedef string FeatureName;
  typedef sequence<FeatureName> NameList;

  valuetype Cookie
  {
    private CORBA::OctetSeq cookieValue;
  };

  valuetype PortDescription
  {
    public FeatureName name;
    public CORBA::RepositoryId type_id;
  };

  valuetype FacetDescription : PortDescription
  {
    public Object facet_ref;
  };

  typedef sequence<FacetDescription> FacetDescriptions;

  typedef unsigned long FailureReason;

  exception InvalidName {};
  exception InvalidConnection {};
  exception ExceededConnectionLimit {};
  exception AlreadyConnected {};
  exception NoConnection {};
  exception CookieRequired {};
  exception CreateFailure {
    FailureReason reason;
  };
  exception FinderFailure
  {
    FailureReason reason;
  };
  exception RemoveFailure
  {
    FailureReason reason;
  };
  exception DuplicateKeyValue {};
  exception InvalidKey {};
  exception UnknownKeyValue {};
  exception NoKeyAvailable {};
  exception BadEventType
  {
    CORBA::RepositoryId expected_event_type;
  };
  exception HomeNotFound {};
  exception WrongComponentType {};

  typedef FailureReason InvalidConfigurationReason;
  const InvalidConfigurationReason UnknownConfigValueName = 0;
  const InvalidConfigurationReason InvalidConfigValueType = 1;
  const InvalidConfigurationReason ConfigValueRequired = 2;
  const InvalidConfigurationReason ConfigValueNotExpected = 3;
  exception InvalidConfiguration
  {
    InvalidConfigurationReason reason;
    FeatureName name;
  };
  exception IllegalState {};

  interface Navigation
  {
    Object provide_facet (in FeatureName name)
      raises (InvalidName);
    FacetDescriptions get_all_facets();
    FacetDescriptions get_named_facets (in NameList names)
      raises (InvalidName);
    boolean same_component (in Object object_ref);
  };

  valuetype ConnectionDescription
  {
    public Cookie ck;
    public Object objref;
  };
  typedef sequence<ConnectionDescription> ConnectionDescriptions;

  valuetype ReceptacleDescription : PortDescription
  {
    public boolean is_multiple;
    public ConnectionDescriptions connections;
  };
  typedef sequence<ReceptacleDescription> ReceptacleDescriptions;

  interface Receptacles
  {
    Cookie connect (in FeatureName name, in Object connection )
      raises (InvalidName,
              InvalidConnection,
              AlreadyConnected,
              ExceededConnectionLimit);

    // @@ Changed to return the previously connected object reference -- basef on RTF 1.1.
    Object disconnect (in FeatureName name, in Cookie ck)
      raises (InvalidName,
              InvalidConnection,
              CookieRequired,
              NoConnection);

    ConnectionDescriptions get_connections (in FeatureName name)
      raises (InvalidName);

    ReceptacleDescriptions get_all_receptacles ();

    ReceptacleDescriptions get_named_receptacles (in NameList names)
      raises (InvalidName);
  };
};
#endif /* CCM_BASE_IDL */