X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FSocketHandle.cti;h=bc3f7be935f228a9256f9f7458af3bc6e7adcc88;hb=d5a72d0b3f6fee56dba6de1c54cafb448ebe3457;hp=b04f1f8133f9bf7e2ca6555cc5f342f6b5bba9e1;hpb=69e4a07eea4a95a83d226d7b7095b7d310dc4a06;p=senf.git diff --git a/Socket/SocketHandle.cti b/Socket/SocketHandle.cti index b04f1f8..bc3f7be 100644 --- a/Socket/SocketHandle.cti +++ b/Socket/SocketHandle.cti @@ -27,9 +27,8 @@ #include "SocketHandle.ih" // Custom includes -#include "../Utils/senfassert.hh" #include -#include +#include "../Utils/senfassert.hh" #include "../Utils/TypeInfo.hh" #define prefix_ inline @@ -69,7 +68,7 @@ prefix_ senf::SocketHandle::SocketHandle(FileHandle other, bool isCheck : FileHandle(other) { SENF_ASSERT( isChecked ); - SENF_ASSERT( dynamic_cast(&FileHandle::body()) ); + SENF_ASSERT( ! valid() || dynamic_cast(&FileHandle::body()) ); } template @@ -88,7 +87,7 @@ prefix_ senf::SocketBody const & senf::SocketHandle::body() } template -prefix_ senf::SocketProtocol const & senf::SocketHandle::protocol() +prefix_ senf::SocketProtocol & senf::SocketHandle::protocol() const { return body().protocol(); @@ -176,7 +175,11 @@ prefix_ void senf::SocketHandle::state(SocketStateMap & map, unsigned l // the type name and therefore show the \e static policy of the // socket handle. map["handle"] << prettyName(typeid(*this)); - body().state(map,lod); + if (valid()) { + map["valid"] << "true"; + body().state(map,lod); + } else + map["valid"] << "false"; } template @@ -189,11 +192,11 @@ prefix_ std::string senf::SocketHandle::dumpState(unsigned lod) template template -prefix_ Facet const & senf::SocketHandle::facet() +prefix_ Facet & senf::SocketHandle::facet() { try { - return dynamic_cast(protocol()); + return dynamic_cast(protocol()); } SENF_WRAP_EXC(std::bad_cast) }