00001 /* 00002 * 00003 * 00004 * Distributed under the OpenDDS License. 00005 * See: http://www.opendds.org/license.html 00006 */ 00007 00008 #ifndef DCPS_UDPSENDSTRATEGY_H 00009 #define DCPS_UDPSENDSTRATEGY_H 00010 00011 #include "Udp_Export.h" 00012 00013 #include "dds/DCPS/transport/framework/TransportSendStrategy.h" 00014 00015 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL 00016 00017 namespace OpenDDS { 00018 namespace DCPS { 00019 00020 class UdpDataLink; 00021 class UdpInst; 00022 typedef RcHandle<UdpDataLink> UdpDataLink_rch; 00023 00024 class OpenDDS_Udp_Export UdpSendStrategy 00025 : public TransportSendStrategy { 00026 public: 00027 UdpSendStrategy(UdpDataLink* link); 00028 00029 virtual void stop_i(); 00030 00031 protected: 00032 virtual ssize_t send_bytes_i(const iovec iov[], int n); 00033 00034 virtual size_t max_message_size() const 00035 { 00036 return UDP_MAX_MESSAGE_SIZE; 00037 } 00038 00039 private: 00040 UdpDataLink* link_; 00041 }; 00042 00043 } // namespace DCPS 00044 } // namespace OpenDDS 00045 00046 OPENDDS_END_VERSIONED_NAMESPACE_DECL 00047 00048 #endif /* DCPS_UDPSENDSTRATEGY_H */