// Custom includes
#include <typeinfo>
-#include "../Utils/senfassert.hh"
-#include "../Utils/TypeInfo.hh"
+#include <senf/Utils/senfassert.hh>
+#include <senf/Utils/TypeInfo.hh>
#define prefix_ inline
-///////////////////////////////cti.p///////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
// senf::SocketHandle<SPolicy>
template <class SPolicy>
template <class SPolicy>
template <class OtherPolicy>
prefix_ senf::SocketHandle<SPolicy>::SocketHandle(SocketHandle<OtherPolicy> other,
- typename IsCompatible<OtherPolicy>::type *)
+ typename IsCompatible<OtherPolicy>::type *)
: FileHandle(other)
{}
prefix_ senf::SocketHandle<SPolicy>::SocketHandle(FileHandle other, bool isChecked)
: FileHandle(other)
{
- SENF_ASSERT( isChecked );
- SENF_ASSERT( ! valid() || dynamic_cast<SocketBody *>(&FileHandle::body()) );
+ SENF_ASSERT( isChecked, "Internal failure: Wrong overload called !!" );
+ SENF_ASSERT( ! valid() || dynamic_cast<SocketBody *>(&FileHandle::body()),
+ "Internal failure: Replacing or re-assigning non-empty incompatible handle");
}
template <class SPolicy>
prefix_ senf::SocketBody & senf::SocketHandle<SPolicy>::body()
{
- SENF_ASSERT( dynamic_cast<SocketBody *>(&FileHandle::body()) );
+ SENF_ASSERT( dynamic_cast<SocketBody *>(&FileHandle::body()),
+ "Internal failure: Invalid body found it's way into SocketHandle");
return static_cast<SocketBody &>(FileHandle::body());
}
prefix_ senf::SocketBody const & senf::SocketHandle<SPolicy>::body()
const
{
- SENF_ASSERT( dynamic_cast<SocketBody const *>(&FileHandle::body()) );
+ SENF_ASSERT( dynamic_cast<SocketBody const *>(&FileHandle::body()),
+ "Internal failure: Invalid body found it's way into SocketHandle");
return static_cast<SocketBody const &>(FileHandle::body());
}
boost::is_convertible<Target*,FileHandle*>::value &&
( boost::is_convertible<Source,Target>::value ||
boost::is_convertible<Target,Source>::value ) ));
- SENF_ASSERT( check_socket_cast<Target>(handle) );
+ SENF_ASSERT( check_socket_cast<Target>(handle),
+ "Invalid static_socket_cast" );
return Target::cast_static(handle);
}
SENF_WRAP_EXC(std::bad_cast)
}
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
// senf::ProtocolSocketBody<SProtocol>
template <class SProtocol>
: SocketBody(isServer, fd)
{}
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
template <class SPolicy>
prefix_ std::ostream & senf::operator<<(std::ostream & os, SocketHandle<SPolicy> handle)
return os;
}
-///////////////////////////////cti.e///////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
#undef prefix_
\f