00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00027
00028
00029
00030
00031 #define prefix_ inline
00032
00033
00034 #ifndef DOXYGEN
00035 template <class SPolicy>
00036 prefix_ unsigned senf::ReadablePolicy::
00037 readfrom(ClientSocketHandle<SPolicy> & handle, char * buffer, unsigned size,
00038 typename SPolicy::AddressingPolicy::Address & address,
00039 typename IfCommunicationPolicyIs<SPolicy,UnconnectedCommunicationPolicy>::type *)
00040 {
00041 return do_readfrom(handle, buffer, size, address.sockaddr_p(), address.socklen_p());
00042 }
00043 #else
00044 template <class SPolicy>
00045 prefix_ unsigned senf::ReadablePolicy::
00046 readfrom(ClientSocketHandle<SPolicy> & handle, char * buffer, unsigned size,
00047 typename Policy::AddressingPolicy::Address & address)
00048 {}
00049 #endif
00050
00051 #ifndef DOXYGEN
00052 template <class SPolicy>
00053 prefix_ unsigned senf::WriteablePolicy::
00054 write(ClientSocketHandle<SPolicy> & handle, char const * buffer, unsigned size,
00055 typename IfCommunicationPolicyIs<SPolicy,ConnectedCommunicationPolicy>::type *)
00056 {
00057 return do_write(handle,buffer,size);
00058 }
00059 #else
00060 template <class SPolicy>
00061 prefix_ unsigned senf::WriteablePolicy::
00062 write(ClientSocketHandle<SPolicy> & handle, char const * buffer, unsigned size)
00063 {}
00064 #endif
00065
00066 #ifndef DOXYGEN
00067 template <class SPolicy>
00068 prefix_ unsigned senf::WriteablePolicy::
00069 writeto(ClientSocketHandle<SPolicy> & handle,
00070 typename boost::call_traits<typename SPolicy::AddressingPolicy::Address>::param_type addr,
00071 char const * buffer, unsigned size,
00072 typename IfCommunicationPolicyIs<SPolicy,UnconnectedCommunicationPolicy>::type *)
00073 {
00074 return do_writeto(handle, buffer, size, addr.sockaddr_p(), addr.socklen());
00075 }
00076 #else
00077 template <class SPolicy>
00078 prefix_ unsigned senf::WriteablePolicy::
00079 writeto(ClientSocketHandle<SPolicy> & handle,
00080 typename Policy::AddressingPolicy::Address const & addr,
00081 char const * buffer, unsigned size)
00082 {}
00083 #endif
00084
00085
00086 #undef prefix_
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097