X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FSocketHandle.cti;fp=Socket%2FSocketHandle.cti;h=f059c56680449368e9eb6c31822ca058421eec11;hb=c778649a04a9835ecaad9108b9613832d76c2d15;hp=983c5a5c9bac83600c6e5bbfe7b9bf184ce392b2;hpb=14daa84b7c821626ae098bedd93ef07d98bf3a40;p=senf.git diff --git a/Socket/SocketHandle.cti b/Socket/SocketHandle.cti index 983c5a5..f059c56 100644 --- a/Socket/SocketHandle.cti +++ b/Socket/SocketHandle.cti @@ -36,85 +36,85 @@ ///////////////////////////////cti.p/////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// -// senf::SocketHandle +// senf::SocketHandle -template -prefix_ senf::SocketHandle::SocketHandle() +template +prefix_ senf::SocketHandle::SocketHandle() {} -template +template template -prefix_ senf::SocketHandle::SocketHandle(SocketHandle other, +prefix_ senf::SocketHandle::SocketHandle(SocketHandle other, typename IsCompatible::type *) : FileHandle(other) {} -template +template template -prefix_ typename senf::SocketHandle::template IsCompatible::type const & -senf::SocketHandle::operator=(SocketHandle other) +prefix_ typename senf::SocketHandle::template IsCompatible::type const & +senf::SocketHandle::operator=(SocketHandle other) { assign(other); return *this; } -template +template prefix_ -senf::SocketHandle::SocketHandle(std::auto_ptr body) +senf::SocketHandle::SocketHandle(std::auto_ptr body) : FileHandle(std::auto_ptr(body.release())) {} -template -prefix_ senf::SocketHandle::SocketHandle(FileHandle other, bool isChecked) +template +prefix_ senf::SocketHandle::SocketHandle(FileHandle other, bool isChecked) : FileHandle(other) { SENF_ASSERT( isChecked ); SENF_ASSERT( dynamic_cast(&FileHandle::body()) ); } -template -prefix_ senf::SocketBody & senf::SocketHandle::body() +template +prefix_ senf::SocketBody & senf::SocketHandle::body() { SENF_ASSERT( dynamic_cast(&FileHandle::body()) ); return static_cast(FileHandle::body()); } -template -prefix_ senf::SocketBody const & senf::SocketHandle::body() +template +prefix_ senf::SocketBody const & senf::SocketHandle::body() const { SENF_ASSERT( dynamic_cast(&FileHandle::body()) ); return static_cast(FileHandle::body()); } -template -prefix_ senf::SocketProtocol const & senf::SocketHandle::protocol() +template +prefix_ senf::SocketProtocol const & senf::SocketHandle::protocol() const { return body().protocol(); } -template -prefix_ void senf::SocketHandle::assign(FileHandle other) +template +prefix_ void senf::SocketHandle::assign(FileHandle other) { FileHandle::operator=(other); } -template -prefix_ senf::SocketHandle -senf::SocketHandle::cast_static(FileHandle handle) +template +prefix_ senf::SocketHandle +senf::SocketHandle::cast_static(FileHandle handle) { return SocketHandle(handle,true); } -template -prefix_ senf::SocketHandle -senf::SocketHandle::cast_dynamic(FileHandle handle) +template +prefix_ senf::SocketHandle +senf::SocketHandle::cast_dynamic(FileHandle handle) { // throws bad_cast if the body is not a SocketBody SocketBody & body (dynamic_cast(FileHandle::body(handle))); // throws bad_cast if the policy is not compatible - SocketPolicy::checkBaseOf(body.protocol().policy()); + SPolicy::checkBaseOf(body.protocol().policy()); return cast_static(handle); } @@ -164,8 +164,8 @@ prefix_ bool senf::check_socket_cast(Source handle) return true; } -template -prefix_ void senf::SocketHandle::state(SocketStateMap & map, unsigned lod) +template +prefix_ void senf::SocketHandle::state(SocketStateMap & map, unsigned lod) { // We use typeid here even though the type of *this is static // (SocketHandle is not polymorphic and has no vtable). This will @@ -176,8 +176,8 @@ prefix_ void senf::SocketHandle::state(SocketStateMap & map, unsig body().state(map,lod); } -template -prefix_ std::string senf::SocketHandle::dumpState(unsigned lod) +template +prefix_ std::string senf::SocketHandle::dumpState(unsigned lod) { SocketStateMap map; state(map,lod); @@ -197,6 +197,15 @@ prefix_ senf::ProtocolSocketBody::ProtocolSocketBody(bool isServer, i : SocketBody(isServer, fd) {} +/////////////////////////////////////////////////////////////////////////// + +template +prefix_ std::ostream & senf::operator<<(std::ostream & os, SocketHandle handle) +{ + os << handle.dumpState(); + return os; +} + ///////////////////////////////cti.e/////////////////////////////////////// #undef prefix_