// $Id$
//
-// Copyright (C) 2006
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
-// Stefan Bund <stefan.bund@fokus.fraunhofer.de>
+// Copyright (C) 2006
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
+// Stefan Bund <g0dil@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
#include "SocketHandle.ih"
// Custom includes
-#include "Utils/Exception.hh"
+#include "../Utils/senfassert.hh"
+#include "../Utils/Exception.hh"
#include "SocketProtocol.hh"
#define prefix_ inline
///////////////////////////////cci.p///////////////////////////////////////
-prefix_ senf::SocketBody::SocketBody(std::auto_ptr<SocketProtocol> protocol,
- bool isServer)
- : protocol_(protocol), isServer_(isServer)
-{
- BOOST_ASSERT( ! protocol_->body_ );
- protocol_->body_ = this;
-}
+prefix_ senf::SocketBody::SocketBody(bool isServer)
+ : isServer_(isServer)
+{}
+
+prefix_ senf::SocketBody::SocketBody(bool isServer, int fd)
+ : FileBody(fd), isServer_(isServer)
+{}
-prefix_ senf::SocketBody::SocketBody(std::auto_ptr<SocketProtocol> protocol,
- bool isServer, int fd)
- : FileBody(fd), protocol_(protocol), isServer_(isServer)
+prefix_ senf::SocketProtocol & senf::SocketBody::protocol()
{
- BOOST_ASSERT( ! protocol_->body_ );
- protocol_->body_ = this;
+ return const_cast<SocketProtocol &>(v_protocol());
}
prefix_ senf::SocketProtocol const & senf::SocketBody::protocol()
const
{
- return *protocol_;
+ return v_protocol();
}
prefix_ bool senf::SocketBody::isServer()
return isServer_;
}
-///////////////////////////////////////////////////////////////////////////
-// senf::detail::ConvertibleString
+prefix_ std::auto_ptr<senf::SocketBody> senf::SocketBody::clone(bool isServer)
+ const
+{
+ return protocol().clone(isServer);
+}
-prefix_ senf::detail::ConvertibleString::ConvertibleString()
-{}
+prefix_ std::auto_ptr<senf::SocketBody> senf::SocketBody::clone(int fd, bool isServer)
+ const
+{
+ return protocol().clone(fd, isServer);
+}
-prefix_ senf::detail::ConvertibleString::ConvertibleString(bool v)
- : std::string(v ? "true" : "false")
-{}
+///////////////////////////////////////////////////////////////////////////
+// senf::detail::StreamableString
+
+prefix_ senf::detail::StreamableString & senf::detail::StreamableString::operator<<(bool v)
+{
+ return (*this) << std::string(v ? "true" : "false");
+}
///////////////////////////////cci.e///////////////////////////////////////
#undef prefix_
\f
// Local Variables:
// mode: c++
+// fill-column: 100
// c-file-style: "senf"
+// indent-tabs-mode: nil
+// ispell-local-dictionary: "american"
+// compile-command: "scons -u test"
+// comment-column: 40
// End: