21 link->transport_priority(),
24 #
if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
44 return (cfg && cfg->async_send()) ?
async_send(iov, n, cfg->group_address_) :
sync_send(iov, n);
54 if (result == -1 && errno ==
ENOBUFS) {
59 for (
int i = 0; i < n; ++i) b += iov[i].iov_len;
69 #if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS) 79 size_t total_length = 0;
81 for (
int i = n - 1; i >= 0; --i) {
85 next->
wr_ptr(iov[i].iov_len);
86 total_length += iov[i].iov_len;
91 size_t bytes_sent = 0;
92 ssize_t result = async_writer_.send(mb, bytes_sent, 0 , group_address);
111 #if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS) 113 async_writer_.cancel();
118 #if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
ACE_Message_Block * message_block(void) const
virtual void prepare_header_i()
Specific implementation processing of prepared packet header.
void link_released(bool flag)
ACE_SOCK_Dgram_Mcast & socket()
MulticastSendStrategy(MulticastDataLink *link)
ssize_t send(const void *buf, size_t n, int flags=0) const
ssize_t sync_send(const iovec iov[], int n)
MulticastPeer local_peer() const
ACE_HANDLE socket(int protocol_family, int type, int proto)
unsigned long error(void) const
ACE_Proactor * get_proactor()
MulticastDataLink * link_
virtual ACE_Message_Block * release(void)
ACE_Message_Block * cont(void) const
char * wr_ptr(void) const
ACE_HANDLE get_handle(void) const
virtual void stop_i()
Let the subclass stop.
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
void set_header_source(ACE_INT64 source)
ssize_t async_send(const iovec iov[], int n, const ACE_INET_Addr &addr)
virtual ssize_t send_bytes_i(const iovec iov[], int n)
MulticastInst_rch config()
The Internal API and Implementation of OpenDDS.