summaryrefslogtreecommitdiff
path: root/trunk/TAO/orbsvcs/orbsvcs/CosTypedEventChannelAdmin.idl
blob: 5a809fb1642407c31a3c1fa78c4b29e49649fc0c (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

//=============================================================================
/**
*  @file  CosTypedEventChannelAdmin.idl
*
*  $Id$
*
*  @brief Part of the Event Service
*          See http://www.omg.org/docs/formal/01-03-01.pdf
*/
//=============================================================================

#ifndef _COS_TYPED_EVENT_CHANNEL_ADMIN_IDL_
#define _COS_TYPED_EVENT_CHANNEL_ADMIN_IDL_

#include "CosEventChannelAdmin.idl"
#include "CosTypedEventComm.idl"

#pragma prefix "omg.org"

module CosTypedEventChannelAdmin {

  exception InterfaceNotSupported {};
  exception NoSuchImplementation {};
  typedef string Key;

  interface TypedProxyPushConsumer :
  CosEventChannelAdmin::ProxyPushConsumer,
    CosTypedEventComm::TypedPushConsumer  { };

  interface TypedProxyPullSupplier :
  CosEventChannelAdmin::ProxyPullSupplier,
    CosTypedEventComm::TypedPullSupplier { };

  interface TypedSupplierAdmin :
  CosEventChannelAdmin::SupplierAdmin {
    TypedProxyPushConsumer obtain_typed_push_consumer(
      in Key supported_interface)
      raises(InterfaceNotSupported);
    CosEventChannelAdmin::ProxyPullConsumer obtain_typed_pull_consumer (
      in Key uses_interface)
      raises(NoSuchImplementation);
  };

  interface TypedConsumerAdmin :
  CosEventChannelAdmin::ConsumerAdmin {
    TypedProxyPullSupplier obtain_typed_pull_supplier(
      in Key supported_interface)
      raises (InterfaceNotSupported);
    CosEventChannelAdmin::ProxyPushSupplier obtain_typed_push_supplier(
      in Key uses_interface)
      raises(NoSuchImplementation);
  };

  interface TypedEventChannel {
    TypedConsumerAdmin for_consumers();
    TypedSupplierAdmin for_suppliers();
    void destroy ();
  };
};

#endif /* _COS_TYPED_EVENT_CHANNEL_ADMIN_IDL_ */