X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FSocketHandle.cci;h=ec22ca325dc05341b1fd85e91837e1a8a389319e;hb=bd9f9d3fd6fbcff0112a7bf48ab9284da9576b11;hp=20d3a9d687eec1ac6c983d3e30a86d71ddfc6a27;hpb=1ad3873b372da6187b1fbc645bf276287d2efb54;p=senf.git diff --git a/Socket/SocketHandle.cci b/Socket/SocketHandle.cci index 20d3a9d..ec22ca3 100644 --- a/Socket/SocketHandle.cci +++ b/Socket/SocketHandle.cci @@ -1,9 +1,9 @@ // $Id$ // // Copyright (C) 2006 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) -// Stefan Bund +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Stefan Bund // // 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 @@ -27,37 +27,42 @@ #include "SocketHandle.ih" // Custom includes +#include "../Utils/senfassert.hh" #include "../Utils/Exception.hh" #include "SocketProtocol.hh" #define prefix_ inline ///////////////////////////////cci.p/////////////////////////////////////// -prefix_ senf::SocketBody::SocketBody(std::auto_ptr protocol, - bool isServer) - : protocol_(protocol), isServer_(isServer) +prefix_ senf::SocketBody::SocketBody(bool isServer) + : isServer_(isServer) +{} + +prefix_ senf::SocketBody::SocketBody(bool isServer, int fd) + : FileBody(fd), isServer_(isServer) +{} + +prefix_ senf::SocketProtocol & senf::SocketBody::protocol() + const { - BOOST_ASSERT( ! protocol_->body_ ); - protocol_->body_ = this; + return const_cast(v_protocol()); } -prefix_ senf::SocketBody::SocketBody(std::auto_ptr protocol, - bool isServer, int fd) - : FileBody(fd), protocol_(protocol), isServer_(isServer) +prefix_ bool senf::SocketBody::isServer() { - BOOST_ASSERT( ! protocol_->body_ ); - protocol_->body_ = this; + return isServer_; } -prefix_ senf::SocketProtocol const & senf::SocketBody::protocol() +prefix_ std::auto_ptr senf::SocketBody::clone(bool isServer) const { - return *protocol_; + return protocol().clone(isServer); } -prefix_ bool senf::SocketBody::isServer() +prefix_ std::auto_ptr senf::SocketBody::clone(int fd, bool isServer) + const { - return isServer_; + return protocol().clone(fd, isServer); } ///////////////////////////////////////////////////////////////////////////