00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00026
00027
00028
00029
00030 #define prefix_
00031
00032
00033
00034
00035
00036 template <class Writer>
00037 prefix_ senf::ppi::module::ActiveSocketSink<Writer>::ActiveSocketSink()
00038 {
00039 registerEvent( event_, &ActiveSocketSink::write );
00040 route(input, event_);
00041 }
00042
00043 template <class Writer>
00044 prefix_ senf::ppi::module::ActiveSocketSink<Writer>::ActiveSocketSink(Writer const & writer)
00045 : writer_ (writer)
00046 {
00047 registerEvent( event_, &ActiveSocketSink::write );
00048 route(input, event_);
00049 }
00050
00051 template <class Writer>
00052 prefix_ senf::ppi::module::ActiveSocketSink<Writer>::ActiveSocketSink(Handle const & handle)
00053 : handle_(handle), event_(handle_, IOEvent::Write), writer_()
00054 {
00055 registerEvent( event_, &ActiveSocketSink::write );
00056 route(input, event_);
00057 }
00058
00059 template <class Writer>
00060 prefix_ senf::ppi::module::ActiveSocketSink<Writer>::ActiveSocketSink(Handle const & handle,
00061 Writer const & writer)
00062 : handle_(handle), event_(handle_, IOEvent::Write), writer_(writer)
00063 {
00064 registerEvent( event_, &ActiveSocketSink::write );
00065 route(input, event_);
00066 }
00067
00068
00069
00070
00071 template <class Writer>
00072 prefix_ void senf::ppi::module::ActiveSocketSink<Writer>::write()
00073 {
00074 writer_(handle_,input());
00075 }
00076
00077
00078
00079
00080 template <class Writer>
00081 prefix_ senf::ppi::module::PassiveSocketSink<Writer>::PassiveSocketSink()
00082 {
00083 noroute(input);
00084 input.onRequest(&PassiveSocketSink::write);
00085 checkThrottle();
00086 }
00087
00088 template <class Writer>
00089 prefix_ senf::ppi::module::PassiveSocketSink<Writer>::PassiveSocketSink(Writer const & writer)
00090 : writer_ (writer)
00091 {
00092 noroute(input);
00093 input.onRequest(&PassiveSocketSink::write);
00094 checkThrottle();
00095 }
00096
00097 template <class Writer>
00098 prefix_ senf::ppi::module::PassiveSocketSink<Writer>::PassiveSocketSink(Handle const & handle)
00099 : handle_(handle), writer_()
00100 {
00101 noroute(input);
00102 input.onRequest(&PassiveSocketSink::write);
00103 checkThrottle();
00104 }
00105
00106 template <class Writer>
00107 prefix_ senf::ppi::module::PassiveSocketSink<Writer>::PassiveSocketSink(Handle const & handle,
00108 Writer const & writer)
00109 : handle_(handle), writer_(writer)
00110 {
00111 noroute(input);
00112 input.onRequest(&PassiveSocketSink::write);
00113 checkThrottle();
00114 }
00115
00116
00117
00118
00119 template <class Writer>
00120 prefix_ void senf::ppi::module::PassiveSocketSink<Writer>::write()
00121 {
00122 writer_(handle_,input());
00123 }
00124
00125 template <class Writer>
00126 prefix_ void senf::ppi::module::PassiveSocketSink<Writer>::checkThrottle()
00127 {
00128 if (handle_.valid())
00129 input.unthrottle();
00130 else
00131 input.throttle();
00132 }
00133
00134
00135 #undef prefix_
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146