summaryrefslogtreecommitdiff
path: root/CIAO/connectors/dds4ccm/tests/MultipleTemp/Connector/MultipleTemp_Connector_T.h
blob: 140f5aab79d2a6df5cd5f9bdfcae4576552616c4 (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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
#ifndef DDS_MLT_CONNECTOR_T_H_
#define DDS_MLT_CONNECTOR_T_H_

#include "connectors/dds4ccm/impl/DDS_Base_Connector_T.h"
#include "connectors/dds4ccm/impl/DDS_Write_T.h"
#include "connectors/dds4ccm/impl/DDS_Get_T.h"
#include "connectors/dds4ccm/impl/DDS_Listen_T.h"
#include "connectors/dds4ccm/impl/DDS_Update_T.h"
#include "connectors/dds4ccm/impl/DataListenerControl_T.h"

template <typename CCM_TYPE,
          typename DDS_TYPE_T, bool FIXED_T,
          typename SEQ_TYPE_T,
          typename DDS_TYPE_Y, bool FIXED_Y,
          typename SEQ_TYPE_Y>
class FooConnector_Connector_T
  : public virtual DDS_Base_Connector_T<CCM_TYPE>
{

  typedef DDS_Base_Connector_T<CCM_TYPE> BaseConnector;

public:
  FooConnector_Connector_T (void);

  virtual
  void
  register_type (
  ::DDS::DomainParticipant_ptr participant,
  const char * typesupport_name);

  virtual
  void
  unregister_type (
  ::DDS::DomainParticipant_ptr participant,
  const char * typesupport_name);

  /**
   * T type connector
   **/
  // DDS_Listen operations
  virtual
  CCM_DDS::CCM_ContentFilterSetting*
  get_push_consumer_t_filter_config(void);

  virtual
  CCM_DDS::QueryFilter *
  push_consumer_t_filter (void);

  virtual
  void
  push_consumer_t_filter (const ::CCM_DDS::QueryFilter &);

  virtual
  typename CCM_TYPE::push_consumer_t_traits::data_type::_ptr_type
  get_push_consumer_t_data (void);

  virtual
  typename CCM_TYPE::push_consumer_t_traits::data_control_type::_ptr_type
  get_push_consumer_t_data_control (void);

  virtual
  typename CCM_TYPE::push_consumer_t_traits::dds_entity_type::_ptr_type
  get_push_consumer_t_dds_entity (void);

  // DDS_Update operations
  virtual
  typename CCM_TYPE::observable_t_traits::data_type::_ptr_type
  get_observable_t_data (void);

  virtual
  typename CCM_TYPE::observable_t_traits::dds_entity_type::_ptr_type
  get_observable_t_dds_entity (void);



  /**
    * Y type connector
   **/
  // DDS_Listen operations
  virtual
  CCM_DDS::CCM_ContentFilterSetting*
  get_push_consumer_y_filter_config(void);

  virtual
  CCM_DDS::QueryFilter *
  push_consumer_y_filter (void);

  virtual
  void
  push_consumer_y_filter (const ::CCM_DDS::QueryFilter &);

  virtual
  typename CCM_TYPE::push_consumer_y_traits::data_type::_ptr_type
  get_push_consumer_y_data (void);

  virtual
  typename CCM_TYPE::push_consumer_y_traits::data_control_type::_ptr_type
  get_push_consumer_y_data_control (void);

  virtual
  typename CCM_TYPE::push_consumer_y_traits::dds_entity_type::_ptr_type
  get_push_consumer_y_dds_entity (void);

  // DDS_Update operations
  virtual
  typename CCM_TYPE::observable_y_traits::data_type::_ptr_type
  get_observable_y_data (void);

  virtual
  typename CCM_TYPE::observable_y_traits::dds_entity_type::_ptr_type
  get_observable_y_dds_entity (void);



  /**
    * Topic names.
    **/
  virtual char * topic_name_t (void);
  virtual void topic_name_t (const char * topic_name_t);
  virtual char * topic_name_y (void);
  virtual void topic_name_y (const char * topic_name_y);

  /**
    * Deployment methods.
    **/
  virtual void configuration_complete (void);
  virtual void ccm_remove (void);
  virtual void ccm_activate (void);
  virtual void ccm_passivate (void);

private:
  DDS_Listen_T<
      typename CCM_TYPE::push_consumer_t_traits,
      typename DDS_TYPE_T::typed_reader_type,
      typename DDS_TYPE_T::value_type,
      SEQ_TYPE_T>
    push_consumer_t_;
  DDS_Listen_T<
      typename CCM_TYPE::push_consumer_y_traits,
      typename DDS_TYPE_Y::typed_reader_type,
      typename DDS_TYPE_Y::value_type,
      SEQ_TYPE_Y>
    push_consumer_y_;

  DDS_Update_T<
      typename CCM_TYPE::observable_t_traits,
      typename DDS_TYPE_T::typed_writer_type,
      typename DDS_TYPE_T::value_type,
      SEQ_TYPE_T>
    observable_t_;

  DDS_Update_T<
      typename CCM_TYPE::observable_y_traits,
      typename DDS_TYPE_Y::typed_writer_type,
      typename DDS_TYPE_Y::value_type,
      SEQ_TYPE_Y>
    observable_y_;

  //connection to the receiver implementation
  typename CCM_TYPE::push_consumer_t_traits::data_listener_type::_var_type dl_t_;
  typename CCM_TYPE::push_consumer_y_traits::data_listener_type::_var_type dl_y_;

  ::CCM_DDS::PortStatusListener_var push_consumer_t_psl;
  ::CCM_DDS::PortStatusListener_var push_consumer_y_psl;

  ::DDS::Publisher_var publisher_t_;
  ::DDS::PublisherListener_var publisher_t_listener_;
  ::DDS::Subscriber_var subscriber_t_;
  ::DDS::SubscriberListener_var subscriber_t_listener_;

  ::DDS::Publisher_var publisher_y_;
  ::DDS::PublisherListener_var publisher_y_listener_;
  ::DDS::Subscriber_var subscriber_y_;
  ::DDS::SubscriberListener_var subscriber_y_listener_;

  CORBA::String_var topic_name_t_;
  CORBA::String_var topic_name_y_;

  ::DDS::Topic_var topic_t_;
  ::DDS::Topic_var topic_y_;

  ::DDS::TopicListener_var topiclistener_t_;
  ::DDS::TopicListener_var topiclistener_y_;

  ACE_Reactor * reactor_;

  void create_topics (const char * typesupport_name);

};

#include "MultipleTemp_Connector_T.cpp"

#endif