udp.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef CONEXUSNSPRUDP_H
00020 #define CONEXUSNSPRUDP_H
00021
00022 #include <conexus-nspr/socket.h>
00023
00024 namespace Conexus
00025 {
00026
00027 namespace NSPR
00028 {
00029
00037 class UDP : public Socket
00038 {
00039 protected:
00040
00041 UDP( uint32_t host, uint16_t localport, uint16_t remoteport );
00042
00043 UDP( const std::string& host, uint16_t localport, uint16_t remoteport );
00044
00045 public:
00046
00047 typedef ConexusPointer<UDP> pointer;
00048
00049 static UDP::pointer create( uint16_t localport = 0, uint16_t remoteport = 0 );
00050
00051 static UDP::pointer create( uint32_t host, uint16_t localport, uint16_t remoteport );
00052
00053 static UDP::pointer create( const std::string& host, uint16_t localport=0, uint16_t remoteport=0 );
00054
00055 virtual ~UDP() throw();
00056
00057 virtual void open() throw ( open_exception );
00058
00059 virtual void bind() throw ( bind_exception );
00060
00061 virtual void bind( Conexus::Address& a ) throw ( bind_exception );
00062
00063 virtual void close() throw ( close_exception );
00064
00069
00070
00077
00078
00079 virtual void connect() throw ( connect_exception );
00080
00081 virtual void connect( Address& a ) throw ( connect_exception );
00082
00100 virtual void set_write_without_connect( bool value = true );
00101
00102
00103 virtual bool write_without_connect() const;
00104
00105 virtual bool multicast_auto_join() const;
00106
00107 virtual void set_multicast_auto_join( bool value = true );
00108
00112 virtual int multicast_hops();
00113
00117 virtual void set_multicast_hops( int hops );
00118
00122 virtual bool multicast_loop();
00123
00127 virtual void set_multicast_loop( bool loop );
00128
00129 protected:
00130 bool m_write_without_connect;
00131 bool m_multicast_auto_join;
00132 bool m_multicast_joined;
00133
00134
00136 virtual void join();
00137
00139 virtual void leave();
00140
00141 virtual size_t write_data(const Data data, Timeout timeout) throw (write_exception);
00142
00143 };
00144
00145 }
00146
00147 }
00148
00149 #endif
00150