OpenDDS  Snapshot(2023/04/28-20:55)
UdpDataLink.h
Go to the documentation of this file.
1 /*
2  *
3  *
4  * Distributed under the OpenDDS License.
5  * See: http://www.opendds.org/license.html
6  */
7 
8 #ifndef OPENDDS_DCPS_TRANSPORT_UDP_UDPDATALINK_H
9 #define OPENDDS_DCPS_TRANSPORT_UDP_UDPDATALINK_H
10 
11 #include "Udp_Export.h"
12 #include "UdpInst_rch.h"
13 #include "UdpReceiveStrategy_rch.h"
14 #include "UdpSendStrategy_rch.h"
15 #include "UdpTransport_rch.h"
16 #include "UdpReceiveStrategy.h"
17 #include "UdpSendStrategy.h"
18 
19 #include <ace/Basic_Types.h>
20 #include <ace/SOCK_Dgram.h>
21 
23 #include <dds/DCPS/ReactorTask.h>
25 
27 
28 namespace OpenDDS {
29 namespace DCPS {
30 
31 class UdpTransport;
34 
36  : public DataLink {
37 public:
38  UdpDataLink(const UdpTransport_rch& transport,
39  Priority priority,
40  const ReactorTask_rch& reactor_task,
41  bool active);
42 
43  bool active() const;
44 
45  ReactorTask_rch reactor_task();
46 
47  ACE_Reactor* get_reactor();
48 
49  ACE_INET_Addr& remote_address();
50 
52 
53  bool open(const ACE_INET_Addr& remote_address);
54 
55  void control_received(ReceivedDataSample& sample,
56  const ACE_INET_Addr& remote_address);
57 
58 protected:
59  bool active_;
60 
62 
65 
66  virtual void stop_i();
67 
68 private:
70 
72 };
73 
74 } // namespace DCPS
75 } // namespace OpenDDS
76 
78 
79 #ifdef __ACE_INLINE__
80 # include "UdpDataLink.inl"
81 #endif /* __ACE_INLINE__ */
82 
83 #endif /* OPENDDS_DCPS_TRANSPORT_UDP_UDPDATALINK_H */
UdpSendStrategy_rch send_strategy_
Definition: UdpDataLink.h:63
ACE_INET_Addr remote_address_
Definition: UdpDataLink.h:69
UdpTransport_rch UdpTransport_rch
Definition: UdpDataLink.h:32
ACE_SOCK_Dgram socket_
Definition: UdpDataLink.h:71
ACE_HANDLE socket(int protocol_family, int type, int proto)
ACE_HANDLE open(const char *filename, int mode, mode_t perms=ACE_DEFAULT_OPEN_PERMS, LPSECURITY_ATTRIBUTES sa=0)
Holds a data sample received by the transport.
ACE_CDR::Long Priority
UdpReceiveStrategy_rch recv_strategy_
Definition: UdpDataLink.h:64
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
#define OpenDDS_Udp_Export
Definition: Udp_Export.h:24
ReactorTask_rch reactor_task_
Definition: UdpDataLink.h:61
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28