Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef ACE_SOCK_DGRAM_MCAST_QOS_H
00015 #define ACE_SOCK_DGRAM_MCAST_QOS_H
00016 #include "ace/pre.h"
00017
00018 #include "ace/SOCK_Dgram_Mcast.h"
00019 #include "QoS_Manager.h"
00020
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif
00024
00025 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00026
00027
00028
00029
00030
00031
00032
00033 class ACE_QoS_Export ACE_SOCK_Dgram_Mcast_QoS : public ACE_SOCK_Dgram_Mcast
00034 {
00035
00036 public:
00037
00038
00039 ACE_SOCK_Dgram_Mcast_QoS (options opts = DEFOPTS);
00040
00041
00042
00043
00044
00045
00046
00047 ~ACE_SOCK_Dgram_Mcast_QoS (void);
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071 int subscribe (const ACE_INET_Addr &mcast_addr,
00072 const ACE_QoS_Params &qos_params,
00073 int reuse_addr = 1,
00074 const ACE_TCHAR *net_if = 0,
00075 int protocol_family = PF_INET,
00076 int protocol = 0,
00077 ACE_Protocol_Info *protocolinfo = 0,
00078 ACE_SOCK_GROUP g = 0,
00079 u_long flags = 0,
00080 ACE_QoS_Session *qos_session = 0);
00081
00082
00083
00084
00085
00086 ssize_t send (const iovec buffers[],
00087 int buffer_count,
00088 size_t &number_of_bytes_sent,
00089 int flags,
00090 const ACE_Addr &addr,
00091 ACE_OVERLAPPED *overlapped,
00092 ACE_OVERLAPPED_COMPLETION_FUNC func) const;
00093
00094
00095 ssize_t send (const void *buf,
00096 size_t n,
00097 const ACE_Addr &addr,
00098 int flags,
00099 ACE_OVERLAPPED *overlapped,
00100 ACE_OVERLAPPED_COMPLETION_FUNC func) const;
00101
00102
00103 ACE_QoS_Manager qos_manager (void);
00104
00105
00106 ACE_ALLOC_HOOK_DECLARE;
00107
00108 int open (const ACE_INET_Addr &addr,
00109 const ACE_QoS_Params &qos_params,
00110 int protocol_family = PF_INET,
00111 int protocol = 0,
00112 ACE_Protocol_Info *protocolinfo = 0,
00113 ACE_SOCK_GROUP g = 0,
00114 u_long flags = 0,
00115 int reuse_addr = 0);
00116
00117 private:
00118
00119
00120
00121
00122 int subscribe_ifs (const ACE_INET_Addr &mcast_addr,
00123 const ACE_QoS_Params &qos_params,
00124 const ACE_TCHAR *net_if,
00125 int protocol_family,
00126 int protocol,
00127 int reuse_addr,
00128 ACE_Protocol_Info *protocolinfo);
00129
00130
00131 ACE_QoS_Manager qos_manager_;
00132
00133 };
00134
00135 ACE_END_VERSIONED_NAMESPACE_DECL
00136
00137 #if defined (__ACE_INLINE__)
00138 #include "SOCK_Dgram_Mcast_QoS.inl"
00139 #endif
00140
00141 #include "ace/post.h"
00142 #endif