summaryrefslogtreecommitdiff
path: root/modules/CIAO/connectors/dds4ccm/idl/ccm_dds.idl
blob: c4690e51d37674d390e782297c3b8db9f8a3673f (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
// $Id$

#ifndef DDS_CCM_BASE_IDL
#define DDS_CCM_BASE_IDL

#include  <Components.idl>
#include "connectors/dds4ccm/idl/dds4ccm_DataListenerControl.idl"
#include "connectors/dds4ccm/idl/dds4ccm_DataListenerControlE.idl"
#include "connectors/dds4ccm/idl/dds4ccm_StateListenerControl.idl"
#include "connectors/dds4ccm/idl/dds4ccm_StateListenerControlE.idl"
#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl"
#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListenerE.idl"
#include "connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl"
#include "connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListenerE.idl"
#include "connectors/dds4ccm/idl/dds4ccm_Connector.idl"
#include "connectors/dds4ccm/idl/dds4ccm_ConnectorE.idl"
#include "connectors/dds4ccm/idl/dds_rtf2_dcpsE.idl"

#define TYPED_MODULE(T, TSeq, T_MODULE) \
module CCM_DDS \
{ \
  module T_MODULE { \
        abstract interface InstanceHandleManager { \
          DDS::InstanceHandle_t register_instance (in T datum); \
          void unregister_instance (in T datum, in DDS::InstanceHandle_t instance_handle); \
        }; \
        local interface Writer : InstanceHandleManager \
        { \
          void write_one (in T datum, in DDS::InstanceHandle_t instance_handle) \
            raises (InternalError); \
          void write_many (in TSeq data) \
            raises (InternalError); \
          attribute boolean is_coherent_write; \
        }; \
        local interface Updater : InstanceHandleManager \
        { \
          void create_one (in T datum) \
              raises (AlreadyCreated, \
                      InternalError); \
          void update_one (in T datum, in DDS::InstanceHandle_t instance_handle) \
              raises (NonExistent, \
                      InternalError); \
          void delete_one (in T datum,in DDS::InstanceHandle_t instance_handle) \
              raises (NonExistent, \
                      InternalError); \
          void create_many (in TSeq data) \
              raises (AlreadyCreated, \
                      InternalError); \
          void update_many (in TSeq data) \
              raises (NonExistent, \
                      InternalError); \
          void delete_many (in TSeq data) \
              raises (NonExistent, \
                      InternalError); \
          readonly attribute boolean is_global_scope; \
          attribute boolean is_coherent_write; \
        }; \
        local interface Getter \
        { \
          boolean get_one (out T datum, out ReadInfo info) \
            raises (InternalError); \
          boolean get_many (out TSeq data, out ReadInfoSeq infos) \
            raises (InternalError); \
          attribute DDS::Duration_t time_out; \
          attribute DataNumber_t max_delivered_data; \
        }; \
        local interface Reader \
        { \
          void read_last (out TSeq data, out ReadInfoSeq infos) \
            raises (InternalError); \
          void read_all (out TSeq data, out ReadInfoSeq infos) \
              raises (InternalError); \
          void read_one_last (inout T datum, out ReadInfo info, \
                                in DDS::InstanceHandle_t instance_handle) \
              raises (NonExistent, InternalError); \
          void read_one_all (in T datum, out TSeq data, out ReadInfoSeq infos, \
                        in DDS::InstanceHandle_t instance_handle) \
                raises (NonExistent, InternalError); \
          attribute QueryFilter filter \
                setraises (InternalError); \
        }; \
        local interface Listener \
        { \
          void on_one_data (in T datum, in ReadInfo info); \
          void on_many_data (in TSeq data, in ReadInfoSeq infos); \
        }; \
        local interface StateListener { \
          void on_creation (in T datum, in ReadInfo info); \
          void on_one_update (in T datum, in ReadInfo info); \
          void on_many_updates (in TSeq data, in ReadInfoSeq infos); \
          void on_deletion (in T datum, in ReadInfo info); \
        }; \
        porttype DDS_Write { \
          uses Writer data; \
          uses DDS::DataWriter dds_entity; \
        }; \
        porttype DDS_Update { \
          uses Updater data; \
          uses DDS::DataWriter dds_entity; \
        }; \
        porttype DDS_Read { \
          uses Reader data; \
          uses DDS::DataReader dds_entity; \
          provides PortStatusListener status; \
        }; \
        porttype DDS_Get { \
          uses Reader data; \
          uses Getter fresh_data; \
          uses DDS::DataReader dds_entity; \
          provides PortStatusListener status; \
        }; \
        porttype DDS_Listen { \
          uses Reader data; \
          uses DataListenerControl data_control; \
          provides Listener data_listener; \
          uses DDS::DataReader dds_entity; \
          provides PortStatusListener status; \
        }; \
        porttype DDS_StateListen { \
          uses Reader data; \
          uses StateListenerControl data_control; \
          provides StateListener data_listener; \
          uses DDS::DataReader dds_entity; \
          provides PortStatusListener status; \
        }; \
        connector DDS_State : DDS_TopicBase { \
          mirrorport DDS_Update observable; \
          mirrorport DDS_Read passive_observer; \
          mirrorport DDS_Get pull_observer; \
          mirrorport DDS_Listen push_observer; \
          mirrorport DDS_StateListen push_state_observer; \
        }; \
        connector DDS_Event : DDS_TopicBase { \
          mirrorport DDS_Write supplier; \
          mirrorport DDS_Get pull_consumer; \
          mirrorport DDS_Listen push_consumer; \
        }; \
    }; \
}; \

#endif